package cn.tedu.csmall.product.pojo.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 添加属性的DTO类
 *
 * @author liuweitao
 *
 * @version 1.0.0
 */
@Data
@Accessors(chain = true)
public class AttributeAddNewDTO implements Serializable {



    /**
     * 所属属性模板id
     */
    @ApiModelProperty(value = "所属属性模板id",required = true,example = "12")
    @NotNull(message = "添加属性失败，必须提交所属属性模板id")
    private Long templateId;

    /**
     * 属性的名称
     */
    @ApiModelProperty(value = "属性的名称",required = true,example = "测试属性")
    @NotNull(message = "添加属性失败，必须提交属性名称！")
    private String name;

    /**
     * 简介
     */
    @ApiModelProperty(value = "简介",required = true,example = "测试属性的简介")//在已有的设置说明
    @NotNull(message = "添加属性失败，必须提交属性简介！")
    @NotBlank(message = "不能为空格符")//只能作用与字符串类型
//    @NotEmpty(message = "不允许为空")//只能作用与字符串类型
    private String description;

    /**
     * 属性类型，1=销售属性，0=非销售属性
     */
    @ApiModelProperty(value = "属性类型",required = true,example = "1")
    private Integer type;

    /**
     * 输入类型，0=手动录入，1=单选，2=多选， 3=单选（下拉列表），4=多选（下拉列表）
     */
    @ApiModelProperty(value = "输入类型",required = true,example = "1")
    private Integer inputType;

    /**
     * 备选值列表
     */
    @ApiModelProperty(value = "备选值列表",required = true,example = "0")
    private String valueList;

    /**
     * 计量单位
     */
    @ApiModelProperty(value = "计量单位",required = true,example = "包")
    private String unit;

    /**
     * 排序序号
     */
    @ApiModelProperty(value = "排序序号",required = true,example = "20")
    @NotNull(message = "添加属性失败，必须提交排序序号！")
//    @NotEmpty(message = "不允许为空")//只能作用与字符串类型
    @Range(min = 0,max = 255,message = "最小0，最大255，输入正确的数值")
    private Integer sort;


    /**
     * 是否允许自定义，1=允许，0=禁止
     */
    @ApiModelProperty(value = "是否允许自定义",required = true,example = "1")
    private Integer isAllowCustomize;
}
